A. Technical Field
The present invention relates to systems providing for personalized, distributed, portable real time data acquisition and control, and more particularly to a service oriented environment for managing and controlling such systems.
B. Background of the Invention
Real-time systems are necessary where there is a need to guarantee real-time response to achieve a required quality of service of various underlying devices, communications networks, operating systems, middleware components and application components. Thus, real-time systems are widely applied to diverse applications domains such as manufacturing, facilities management, power systems management, financial analysis systems, and telecommunications.
The complexity of real-time systems arises from the need to respond to concurrent events occurring within a single application (or within multiple applications) at the same time. Also, a real-time system must provide some way of managing configuration management, fault management, static and dynamic scheduling, and fault tolerance. However, some applications may be hard real-time applications and others soft real-time applications. This results in increased complexity in managing and correlating data and information generated by the different systems into a single coherent system model.
A common strategy for implementing a real-time system is through a hierarchical architecture, where the system is separated into control, supervisory and management layers. The control layer is generally hard real-time in nature, whereas the supervisory and management layers may have decreasing needs for strict guarantee of time, and in many cases are implemented in software.
Hierarchical real-time architecture systems are increasingly being implemented using the client-server model, in which the centralized database stores real time data and acts as a server to graphical user interface clients. Information is transferred from the control network to the real-time database through an input/output server.
One example of such a hierarchical real-time system is a Supervisory and Control Data Acquisition (SCADA) system. In conventional SCADA systems, the real time data is captured from external sensors, control devices, or applications, and is logged to a centralized database. In response, controls on workstations are executed to manage the remote devices. All actions are performed from a centralized location. Basic control functions include alarm, trend, scan, and status operations.
One problem with conventional SCADA systems is that they are completely centralized. In a client-server system, all of the remote data information is loaded up into the central database, and then remote clients access the system. A problem with this design is degraded performance due to the single point of access, as many remote clients attempt to access the real time data through the single database server. This conventional design thus induces a scalability problem which limits the number of concurrent users.
One solution then is to use multiple real time databases, which partition the data being gathered according to geographic, management, or functional criteria. The problem here is configuration management. Traditionally, configuration is done by mapping input and output points to the database fields. If there are multiple databases, then the system designer has to change the mapping of the remote sensors to the databases, and maintain these mappings over a large number of remote devices and databases. Changes in partitioning of data induce further configuration maintenance. In addition, multiple, partitioned databases make it very difficult to introduce new types of data into the database configuration, and provide for new mappings.
Another solution is an object-oriented framework for the development of personalized workflow applications that provide real time functionality, while maintaining scalability to any number of users, and integration with existing legacy application systems. However, such solutions require that the users model up front, the environment of the real-time devices that need to be monitored and/or controlled.
This can be better understood with the help of an example. Such solutions involved the system administrator/user defining the data objects and their logical relationships at a prior time, where the data objects and their relationships preferably corresponded to the logical or physical organization of devices and in the system being modeled. An example of such a system is shown in FIG. 1A, where there is shown a set of data objects in an object server. A top level parent data object is defined to represent a building, here Building Center, which two floors, represented by the data objects of 1st Floor, and 2nd Floor. Each of these data objects has further data objects representing different rooms, Room 1 and Room 2. Each Room data object then has both leaf data objects such as Temperature and Ventilation System, and a parent data object Light Control which itself has leaf data objects for two different Light Banks. This organization of data objects preferably represents the actual building being modeled. When the data objects are created, the building is therefore virtually xe2x80x9creconstructed.xe2x80x9d
Further, addressing of data objects in the object server is preferably provided by hierarchical naming. Each data object is addressed by its path in the object server. For example, the temperature of Room 1 of 1st Floor is accessed by xe2x80x9cBuilding Center.1stFloor.Room 1.Temperature.xe2x80x9d Addressing of data objects may also be done with variables. For example, a presentation cell 150, 160, 170 or 180 in FIG. 1B may access any of the leaf data objects of Room 1 by addressing xe2x80x9cBuilding Center.1stFloor.Room 1.xxe2x80x9d, where x is a variable used to select which leaf data object to obtain. Likewise, any address component can be replaced by a variable. When an address of a data object is resolved, the object server obtains the value of the data object using the index and size parameters stored in the underlying leaf data objects.
In the above example, the server would need to be taken off-line and reconfigured, and then taken back up again, every time that a new object is introduced, or every time that some attribute of an object is modified/added. Thus such systems are problematic in that such modifications must be made by the system administrator/user with the server off-line. Thus such a system does not provide real-time data at the time that such modifications are being made.
FIG. 1B depicts such a system by which objects corresponding to real time devices, and their attributes corresponding to different real time data available from those real time devices, are represented and/or updated on presentation cells 302 on the client device.
FIG. 1B shows that an object 100, having xe2x80x9cnxe2x80x9d attributes, is created on the server side of the system. Each data attribute 110, 120, 130, and 140, has its own address. That is, as described above, only the naming structure in such a system is hierarchical. In actuality, data attributes 110, 120, 130, and 140 have a flat structure. That is, there is no hierarchy employed in the data structure, and each attribute has a separate address on the server side. Each data attribute 110, 120, 130, and 140 is entirely self-contained. The object does not have an address of its own in the system.
Via the network, a copy of the object 100A is created on the client device. Further, a copy is also made of the addresses for each data attribute 110A, 120A, 130A, and 140A. The client device includes presentation cells 150, 160, 170 and 180. Each of these presentation cells 150, 160, 170 and 180 subscribes to a data attribute 110A, 120A, 130A and 140A. Based on the addresses of each data attribute 110A, 120A, 130A and 140A, the presentation cells 150, 160, 170 and 180 can access the values of the data attributes that they subscribe to.
In such a system, the user of the client device is required to define the objects and their data attributes up frontxe2x80x94the object model cannot be built dynamically. As can be noted from the steps described above, the user must define all the attributes of each object up front, so that each of these attributes can be assigned its own address. Thus, each time a system employing such a method is used for a different object model, the object model needs to be built to correspond to that particular use of the system. For instance, even if such a system is used only for building maintenance purposes, a separate object model will have to be pre-defined for each distinct building. Dynamic object modeling is not possible with the systems described above.
Thus there exists a need for a solution which permits dynamic modeling of the environment by the user.
Further, current real-time device management/control systems permit access to the real time data from one centralized place, and from one particular medium (for instance a particular computer). This creates a problem because a user of the system may not always be at that centralized place, or have access to that particular medium. For instance, if real time updates of the data were contingent on a computer situated in a user""s office being powered on, the user would not be able to obtain the updated real time data from her home if her computer at work were turned off. Further, the user would not be able to access the real time data from a different medium, such as a telephone.
Thus there exists a need for making such management/control systems virtual, and accessible from different places through different mediums of the users"" choice.
Another problem with currently existing real time device management/control solutions is that they do not manage Quality of Service (QOS) requirements. By definition, a real-time system provides a result in response to an event in a time scale that is adequate to meet the quality of service and performance needs of the application. Different publishers of data often offer different QOS capabilities. Thus subscribers to the data may wish to choose different publishers based on the QOS offered by them. In addition, different subscribers may be satisfied with different levels of QOS. Subscribers who did not have high QOS requirements may be able to obtain the data at a lower cost than those who require the same data at a higher QOS.
Thus there exists a need to manage QOS requirements of subscribers with the QOS capabilities of publishers of data. Further, there is a need to guarantee end-to-end quality of service to every application, regardless of its implementation, communications protocols, or other integration factors.
The present invention overcomes the limitations of currently existing real-time data acquisition and control systems by providing a framework which facilitates dynamic building of the object model by allowing dynamic publication of data. In addition, the present system permits a user to access the real time data through various mediums of the user""s choice. Further, the present system manages the QOS capabilities of publishers of real-time data as well as the QOS requirements of subscribers to the real time data.
The present invention uses complex data structures, instead of the above-described flat data structures used by some current systems, in order to create a dynamic object server. xe2x80x9cObjectxe2x80x9d structures containing attributes are now created. Instead of allocating an address to each attribute, each object is allocated one address, and there are pointers to the various attributes within one object structure. This facilitates dynamic object modeling.
A system in accordance with the present invention comprises of real time devices, a communications gateway, an object server, and a subscriber to the data. The communications gateway is communicatively coupled to selected ones of the real time devices to receive real time data from the devices. This real time data is received in a format according to a communications protocol associated with the devices; various different devices may have different, non-compatible, proprietary formats. The communications gateway converts the real time data by reformatting it into standardized data format that is independent of the original format used by the devices. The standardized data format specifies for each item of real time data a content and source of the real time data. In this manner, data from many different devices, having different original source formats is converted into a single, standard data format.
The object server is communicatively coupled to the communications gateway and receives from it, a list of the real time devices to which the communications gateway is coupled, as well as their attributes. (These various logical attributes correspond to attributes of individual devices, or collections of devices.) The object server then publishes this list. Once a subscriber requests information about one or more attributes of one or more devices, the object server creates data objects corresponding to the requested devices, along with the attributes of the data objects. The object server then stores the real time data in the data objects that it has created. In this manner, dynamic modeling of the environment becomes possible, because real time devices can define what they have to offer.
For example, in a building management system, the real time data from the field devices will be for many different types of field devices, such as lights, heating units, thermostats, window controls, ventilation systems, elevator banks, and so forth. As received by the communications gateway, the data from the many different field devices is very low level, and disaggregated in the sense that the communications gateway has no knowledge that relates data from different field devices (e.g. readings from different temperature sensors in the same tank). However, when a subscriber expresses interest in a particular device or attribute, the object server dynamically creates a corresponding data object. At this time, the real world data can be organized in a logical manner, such as an abstraction for each floor of the building, within each floor, a number of rooms, and within each room controls for lights, temperature, window position, and so forth. The organization of the data (e.g. hierarchical organization by floor, room, and type of control) is not present in the original real time data received by the communications gateway, but rather, is provided by the object server. Further, it is to be noted that the organization of the object server does not need to be defined up front by the system administrator/user to represent the real world system being managed. Instead, any real world system can be dynamically modeled on demand.
A system in accordance with the present invention may further comprise of a personal agent. Such a personal agent would comprise of a service agent that could subscribe to some attributes of certain objects from the list published by the object server, as well as presentation cells that would provide a representation of these attributes.
This personal agent may reside on a server different from the object server, and may be accessed by users through several different mechanisms, such as through telephone, through browsers, etc. That is, users can then access the published real time data from any place, and through different mediums.
In another aspect of the present invention, a system in accordance with the present invention manages the QOS capabilities of publishers of real time data, and the QOS requirements of subscribers to real time data. If the QOS requested by a subscriber can be provided by a publisher, the requested QOS is provided to the subscriber. If the QOS requested by subscriber cannot be provided by a publisher, the subscriber may be given the option of receiving the desired data from another publisher who can provide the requested QOS. Further, if the channel connecting the subscriber to the publisher is the limiting factor, an alternate channel capable of supporting the requested QOS may be selected.
Accordingly, the present invention represents a substantial improvement over existing approaches for implementing real-time object-oriented systems.
The features and advantages described in this summary and the following detailed description are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter.